/* 
用户搜索的vuex模块
*/
import axios from 'axios'

export default {
  namespaced: true, // 开启命名空间
  state: {
    firstView: true, // 是否显示第一个界面
    loading: false, // 是否正在请求搜索中
    errorMsg: '', // 请求的错误提示信息
    users: [], // 搜索得到的用户
  },
  mutations: {
    // 请求中
    requesting (state) {
      state.firstView = false
      state.loading = true
    },

    // 请求成功
    reqSuccess (state, users) {
      state.loading = false
      state.users = users
    },

    // 请求失败
    reqError (state, errorMsg) {
      state.loading = false
      state.errorMsg = errorMsg
    }
  },
  actions: {
    // 搜索的异步action
    async search ({commit}, keyword) {
      // 更新为请求中
      commit('requesting')
      try {
        // 发请求
        const response = await axios({
          // url: '/dev-api/search/users2',
          url: '/dev-api/search/users',
          params: {
            q: keyword
          }
        })
        // 请求成功, 取出users
        const users = response.data.items
        // 更新为成功
        commit('reqSuccess', users)
      } catch (error) {
        // 更新为失败
        commit('reqError', '请求失败: ' + error.message)
      }
    }
  },
}